PIPS Is not (just) Polyhedral Software Adding GPU Code Generation in PIPS
نویسندگان
چکیده
Parallel and heterogeneous computing are growing in audience thanks to the increased performance brought by ubiquitous manycores and GPUs. However, available programming models, like OPENCL or CUDA, are far from being straightforward to use. As a consequence, several automated or semi-automated approaches have been proposed to automatically generate hardware-level codes from high-level sequential sources. Polyhedral models are becoming more popular because of their combination of expressiveness, compactness, and accurate abstraction of the data-parallel behaviour of programs. These models provide automatic or semi-automatic parallelization and code transformation capabilities that target such modern parallel architectures. PIPS is a quarter-century old source-to-source transformation framework that initially targeted parallel machines but then evolved to include other targets. PIPS uses abstract interpretation on an integer polyhedral lattice to represent program code, allowing linear relation analysis on integer variables in an interprocedural way. The same representation is used for the dependence test and the convex array region analysis. The polyhedral model is also more classically used to schedule code from linear constraints. In this paper, we illustrate the features of this compiler infrastructure on an hypothetical input code, demonstrating the combination of polyhedral and non polyhedral transformations. PIPS interprocedural polyhedral analyses are used to generate data transfers and are combined with non-polyhedral transformations to achieve efficient CUDA code generation.
منابع مشابه
Towards Automatic C Programs Optimization and Parallelization using the PIPS-PoCC Integration
This paper explains how the PIPS source-to-source compilation framework integrates the Polyhedral Compiler Collection (PoCC) as one of PIPS many program transformations. The integration between PIPS and PoCC extracts automatically the static control parts of the source code, which can be optimized independently by PoCC and then reintegrates them transparently in the user source code. PIPS can e...
متن کاملPsychometric feature of the child and parent versions of psychological inflexibility in pain scale (PIPS) in children with chronic pain and their parents
Background: The aim of this study was to investigate the validity, reliability and factor structure of the child and parent's version of psychological inflexibility in pain scale (PIPS) in the population of children with chronic pain and their parents. Methods: The sample consisted of 112 pairs of children and parents, selected through available sampling method from the Tehran Children's Hospi...
متن کاملThe Mediating Effect of Strategic Project Selection in Process Improvement Program Success
Process Improvement Programs (PIPs) such as Total Quality Management, Six Sigma, JIT, and Lean have been the subject of much research over the last two decades. Most research on PIPs examines one specific type of PIP and attempts to evaluate the impact of specific PIP practices on performance. While most scholars agree that PIP research is extremely important, they also agree that it is difficu...
متن کاملPorcine Induced Pluripotent Stem Cells Require LIF and Maintain Their Developmental Potential in Early Stage of Embryos
Porcine induced pluripotent stem (piPS) cell lines have been generated recently by using a cocktail of defined transcription factors, however, the features of authentic piPS cells have not been agreed upon and most of published iPS clones did not meet the stringent requirements of pluripotency. Here, we report the generation of piPS cells from fibroblasts using retrovirus carrying four mouse tr...
متن کاملThe Incremental Design of Parallel Compiler Intermediate Representations using SPIRE
SPIRE is the first incremental methodology for designing the intermediate representations (IR) of compilers that target parallel programming languages. Its core philosophy is to extend in a systematic manner the IRs found in the compilation frameworks of sequential languages. Avoiding the often-used ad-hoc approach of encoding all parallel constructs as “fake” function calls, SPIRE enables the ...
متن کامل